/* 
  利用经纬度 换成 用户看的懂的地址信息           逆地址解析!!!
    小程序没有这个能力 所以这边需要用别人提供的能力  => 腾讯位置服务
    
  地址信息  转换成  经纬度                     地址解析
*/

Page({
  data: {
    address: '',
    list: [],
  },

  onLoad() {
    this.getLocation()
  },

  async getLocation() {
    // 1. 获取当前坐标
    const { latitude, longitude } = await wx.getLocation() // 异步 支持 promise
    console.log(latitude, longitude) // 模拟器 这个位置并不精准
    // 都需要 坐标转地址 都需要用到 map 实例   wx.map   getApp().map
    console.log(wx.map) // reverseGeocoder
    // 2. 坐标转地址
    this.reverseGeocoder(latitude, longitude)
    // 3. 坐标找附近
    this.search(latitude, longitude)
  },

  async chooseLocation() {
    // 选择一个位置
    const { latitude, longitude } = await wx.chooseLocation() // 异步 支持 promise
    console.log(latitude, longitude)
    // 都需要 坐标转地址 都需要用到 map 实例   wx.map   getApp().map
    // console.log(wx.map)
    this.reverseGeocoder(latitude, longitude)
    this.search(latitude, longitude)
  },

  // 逆地址解析函数
  reverseGeocoder(latitude, longitude) {
    wx.map.reverseGeocoder({
      // 将经纬度拼成字符串给他就行了 中间有,分隔
      location: `${latitude},${longitude}`,
      success: (res) => {
        // console.log(res.result.address) // 地址信息
        this.setData({
          address: res.result.address,
        })
      },
    })
  },

  // 封装搜索函数
  search(latitude, longitude) {
    // 找附近
    wx.map.search({
      page_size: 5, // 控制数量
      keyword: '小区', // 找什么
      location: `${latitude},${longitude}`, // 在哪附近找
      success: (res) => {
        // console.log(res)
        this.setData({
          list: res.data,
        })
      },
    })
  },
})
